/**
 * i18n的主程序，
 */
import langEn from './en.json'
import langRu from './ru.json'
import langKk from './kk.json'
import zhHans from './zh-Hans.json'
// import uniStarterConfig from '../uni-starter.config.js'
// import uniIm from '@/uni_modules/uni-im/lib/main.js';
// const {
// 	i18n: {
// 		enable: i18nEnable
// 	}
// } = uniStarterConfig
let i18nEnable=true
const messages = {
	'ru': langRu,
	'kk':langKk,
	'en': langEn,
	'zh-Hans': zhHans
}
let currentLang
//如果Config中未打开i18nEnable，则强制使用英文
if (i18nEnable) {
	currentLang = uni.getStorageSync('CURRENT_LANG')
} else {
	currentLang = "en" //默认英语
}
// 以各种方式设置当前语言
if (!currentLang) {
	// 如果有缓存
	if (uni.getLocale) {
		// console.log('获取应用语言:', uni.getLocale());
		let language = uni.getLocale()
		// if (uni.getLocale() != 'zh-Hans' && uni.getLocale() != 'ru') {
		// 	language = 'en'
		// }
		uni.setStorageSync('CURRENT_LANG', language)
		currentLang = language
	} else {
		// 取得系统使用的语言
		uni.getSystemInfo({
			success: function(res) {
				// console.log('获取设备信息:', res);
				let language = res.language
				if (res.language != 'zh-Hans' && res.language != 'ru') {
					language = 'en'
				}
				uni.setStorageSync('CURRENT_LANG', language)
				currentLang = language
			},
			fail: (err) => {
				console.error(err)
			}
		})
	}
}
let i18nConfig = {
	locale: currentLang, // set locale
	messages // set locale messages
}


// #ifdef VUE3
// import {
// 	createI18n
// } from 'vue-i18n'
// const i18n = createI18n(i18nConfig)
// #endif
import {
	createI18n
} from 'vue-i18n'
const i18n = createI18n(i18nConfig)

if (i18nEnable) {
	// console.log(`
	// 	你已开启多语言国际化，将自动根据语言获取【lang/en.js】或【lang/en.js】文件中配置的tabbar的值，
	// 	覆盖你在pages.json中的tabbar的值
	// 	如果你不需要多语言国际化，请打开配置文件uni-starter.config.js找到 -> i18n -> enable把值设置为false
	// `);

	let initLanguageAfter = async () => {
		function $i18n(e) {
			// #ifdef VUE3
			return i18n.global.messages[i18n.global.locale][e]
			// #endif
			return i18n.messages[i18n.locale][e]
		}
		// await obj.testTimestamp().then(res=>{
		// 	console.log('初始i18n完成',res);
		// })
		if (uni.getStorageSync('uni-id-pages-userInfo')) {
			// console.log('i18n-currentLang',currentLang);
			await dbJQL.collection('uni-id-users').doc(uni.getStorageSync('uni-id-pages-userInfo')._id).update({
				lang: currentLang
			}).then(res => {
				// console.log('i18n-更新当前语言',res);
			})
			
		}

	}
	initLanguageAfter()
	uni.$on('changeLanguage', e => {
		// console.log('changeLanguage', e);
		initLanguageAfter(e)
		// #ifdef H5
		// if (uniIm.isWidescreen) {
		// 	window.location.replace('/#/')
		// }
		// #endif
	})
}

export default i18n